﻿import type { ISysPerson, ISysGroup, ISysJobPosition } from '@/type/fileattachment'


export interface ISysHrTransferRequestBill {
  ID?: string | null;
  PersonId: string | null;
  Person?: ISysPerson;
  OrgId: string | null;
  ApplyDate: Date | null;
  EffectiveDate: Date | null;
  TransferType: string | null;
  OriginalGroupId: string | null;
  OriginalGroup?: ISysGroup;
  OriginalPositionId: string | null;
  OriginalPosition?: ISysJobPosition;
  OriginalRank: string | null;
  OriginalBaseSalary: string | null;
  OriginalPositionSalary: string | null;
  OriginalPerformanceSalary: string | null;
  NewGroupId: string | null;
  NewGroup?: ISysGroup;
  NewPositionId: string | null;
  NewPosition?: ISysJobPosition;
  NewRank: string | null;
  NewBaseSalary: string | null;
  NewPositionSalary: string | null;
  NewPerformanceSalary: string | null;
  TransferReason: string | null;
  SupportingDocumentId: string | null;
  Approver: string | null;
  ApprovalTime: Date | null;
  ApprovalOpinion: string | null;
  GroupId: string | null;
  Group?: ISysGroup;
  BillCode: string | null;
  BillStatus: number | null | string;
  WorkflowStatus: number | null | string;
  Remark: string | null
  StaffNo: string | null;
  Name: string | null;
}

export interface ISysHrTransferRequestBillVm {
  Entity: ISysHrTransferRequestBill;
  ActionName: string | null;
  IsMyApprove: boolean | null;
  Remark: string | null;
}

export interface ISysHrTransferRequestBillView extends ISysHrTransferRequestBill {

  ActionNames?: string;

}

export interface ISysHrTransferRequestBillQuery {
  PersonId?: string
  ApplyDate?: Date | string | Date[]
  OriginalGroupId?: string
  OriginalPositionSalary?: string
  NewGroupId?: string
  NewPositionId?: string
  Approver?: string
  ApprovalTime?: Date | string | Date[]
  BillCode?: string
  BillStatus?: number | string
  WorkflowStatus?: number | string
  Limit?: number
  Page?: number
}

// 员工搜索请求参数接口
export interface ISysPersonSearchQuery {
  Name?: string;      // 员工姓名
  PageIndex?: number; // 页码
  State?: string;     // 员工状态
  StaffNo?: string;   // 员工工号
}

// 员工搜索响应接口
export interface ISysPersonSearchResponse {
  Code: number;
  Data: ISysPerson[];
  Msg: string;
  Count?: number;
  PageCount?: number;
  Page?: number;
}